1. Field of the Invention
The present invention relates to a method for controlling a disk array system which is used for data storage in a computer system, and more specifically, to a method for enhancing the reliability of a disk array system which uses as the storage media a set of disk devices with access units of a fixed length.
2. Description of the Related Art
A disk array system, also referred to as a RAID (Redundant Array of Inexpensive Disks), is basically composed of a number of disk devices organized as an array. In a disk array system, a request from a host computer to read or write data is executed on more than one disk device in parallel, resulting in faster input/output processing. Furthermore, it is common to append redundant data to the data stored in the disks, which inherently enhances reliability. Disk array systems are categorized into five levels depending on their system configuration (how the disks are organized) and the kind of redundant data appended. The technologies involved in disk array systems are outlined in “A Case for Redundant Arrays of Inexpensive Disks (RAID),” David A. Patterson, et al, Proceedings of the 1988 ACM SIGMOD International Conference on Management of Data, pp. 109–116.
Two features are essential in disk array systems: data chopping and data assembling. In writing into a disk array system, the write request from the host needs to be translated into multiple requests for multiple disk devices and the data should be divided into multiple pieces, which are then stored into multiple disk devices (data chopping), whereas in reading from a disk array system, the read request from the host needs to be translated into multiple requests to multiple disk devices and the small pieces of data read out of multiple disk devices should be assembled into a more meaningful block of data (data assembling). Data chopping and data assembling are generically called herein disk array control.
In most disk array systems, for reliability considerations, a redundant piece of information is appended to the original data and stored in the disk devices, so that in the event of a failure in one of the disk devices the original data can be restored. To further enhance the reliability of an entire disk array system, another feature known in the prior art is to append a validation code to each logical block of data. For example, as disclosed in Publication of Unexamined Patent Application Nos. 2001-202295 and 2000-347815, a validation code may consist of the logical address (LA) of the logical block and the longitudinal redundancy check (LRC), which is the result of a series of Exclusive-OR operations performed horizontally (longitudinally) on all the bytes or byte groups in the logical block. In a write operation, such a validation code is generated for each logical block of data and stored into the disks together with the data; in a read operation, a validation code is generated from the logical block of data being read and then compared with the validation code originally stored with that data. A mismatch would indicate that there has been a corruption in the address or the data.